登录 白背景

2605. 从两个数字数组里生成最小数字

https://leetcode.cn/problems/form-smallest-number-from-two-digit-arrays/description

  • 难度:简单
  • 提交时间:2023.10.30 19:06
  • 0ms 击败 100.00%使用 Go 的用户
  • 1.97MB 击败 6.17%使用 Go 的用户

func minNumber(nums1 []int, nums2 []int) int {
    flag := make([]int8, 10, 10)
    flag[0] = 10
    for _, i := range nums1 {
        flag[i] = 1
        nums1[0] = min(nums1[0], i)
    }
    for _, i := range nums2 {
        if flag[i] == 1 {
            flag[0] = min(flag[0], int8(i))
        }
        nums2[0] = min(nums2[0], i)
    }
    if flag[0] < 10 {
        return int(flag[0])
    }
    return min(nums1[0], nums2[0])*10 + max(nums1[0], nums2[0])
}

func min[T int8 | int32 | int64 | int](x, y T) T {
    if x < y {
        return x
    }
    return y
}

func max[T int8 | int32 | int64 | int](x, y T) T {
    if x > y {
        return x
    }
    return y
}